﻿cmake_minimum_required(VERSION 3.16)
project(QtForOpenCV4Tool LANGUAGES CXX)

include(qt.cmake)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")
#---------QT相关的东西-------------
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR}
    COMPONENTS
        Core
        Gui
        Widgets
        OpenGL
        MultimediaWidgets
        Network
)
qt_standard_project_setup()

#---------导入opencv4
#导入头文件
include_directories("D:/opencv/opencv/build/include")
#连接opencv库
link_directories("D:/opencv/opencv/build/x64/vc14/lib")
#-----------设置OpenCV--------
#导入sdl2
include_directories("D:/ffmpeg/dev/SDL2-2.28.5/include")
link_directories("D:/ffmpeg/dev/SDL2-2.28.5/lib/x64")

#导入ffmpeg
include_directories("D:/ffmpeg/dev/ffmpeg-5.1.2-dev/include")
link_directories("D:/ffmpeg/dev/ffmpeg-5.1.2-dev/lib")

#导入glfw
include_directories("D:/glfw3.4/include")
link_directories("D:/glfw3.4/lib-vc2022")

#导入curl
include_directories("D:/curl/curl-7.64.1/builds/libcurl-vc-x64-release-dll-ipv6-sspi-winssl/include")
link_directories("D:/curl/curl-7.64.1/builds/libcurl-vc-x64-release-dll-ipv6-sspi-winssl/bin")

#导入libyuv
set(LIB_YUV "D:/libyuv")
include_directories("${LIB_YUV}/include/")
file(GLOB LIBYUV_C_SOURCE "${LIB_YUV}/source/*.hpp")
#message("------------------------------------------*************${LIBYUV_C_SOURCE}")

#导入glm库
set(LIB_GLM "D:/glm")
include_directories("${LIB_GLM}/include/")
file(GLOB LIBGLM_C_SOURCE "${LIB_GLM}/include/*.cc")

#include_directories("")
#-----------设置exe可执行文件的输出路径
# 设置程序生成的路径
set(EXEC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
#message("------------------------------------------*************${EXEC_PATH}")
#设置可执行程序的生成路径
set(EXECUTABLE_OUTPUT_PATH ${EXEC_PATH})
set(PROJECT_SOURCES
    main.cpp
    QtForOpenCV4Tool.ui
    QtForOpenCV4Tool.h
    QtForOpenCV4Tool.cpp
    stb_image.h
    common/CommonListView.h
    common/CommonListView.cpp
    common/CommonListViewItem.h
    common/CommonListViewItem.cpp
    common/CommonGraphicsView.h
    common/CommonGraphicsView.cpp
    items/ai_window.h
    items/ai_window.cpp
    items/ai/ai_google_net_image_division.h
    items/ai/ai_google_net_image_division.cpp
    items/ai/ai_image_distinguish.h
    items/ai/ai_image_distinguish.cpp
    items/face_recognizer_window.h
    items/face_recognizer_window.cpp
    items/face_fecognizer/face_collect_face_data.h
    items/face_fecognizer/face_collect_face_data.cpp
    items/face_fecognizer/face_eigen_face_recognizer.h
    items/face_fecognizer/face_eigen_face_recognizer.cpp
    items/face_fecognizer/face_fisher_facerecognizer.h
    items/face_fecognizer/face_fisher_facerecognizer.cpp
    items/face_fecognizer/face_lbph_facerecognizer.h
    items/face_fecognizer/face_lbph_facerecognizer.cpp
    items/face_fecognizer/face_means_covar.h
    items/face_fecognizer/face_means_covar.cpp
    items/face_fecognizer/face_pca.h
    items/face_fecognizer/face_pca.cpp
    items/face_fecognizer/face_recognizer_my_face.h
    items/face_fecognizer/face_recognizer_my_face.cpp
    items/face_fecognizer/face_values_vectors.h
    items/face_fecognizer/face_values_vectors.cpp
    items/features_detection_window.h
    items/features_detection_window.cpp
    items/feature_detection/CornerHarrisWindow.h
    items/feature_detection/CornerHarrisWindow.cpp
    items/feature_detection/CornerHarris.h
    items/feature_detection/CornerHarris.cpp
    items/feature_detection/ORBImageMatch.h
    items/feature_detection/ORBImageMatch.cpp
    items/feature_detection/goodfeaturestotrack.h
    items/feature_detection/goodfeaturestotrack.cpp
    items/feature_detection/surf_window.h
    items/feature_detection/surf_window.cpp
    items/feature_detection/HogFeatureTestingWindow.h
    items/feature_detection/HogFeatureTestingWindow.cpp
    items/feature_detection/IntegralGraphicsWindow.h
    items/feature_detection/IntegralGraphicsWindow.cpp
    items/feature_detection/PlaneDetectionWindow.h
    items/feature_detection/PlaneDetectionWindow.cpp
    items/haar_lbp_window.h
    items/haar_lbp_window.cpp
    items/harr_lbp/cat_face_distinguish.h
    items/harr_lbp/cat_face_distinguish.cpp
    items/harr_lbp/image_face_distinguish.h
    items/harr_lbp/image_face_distinguish.cpp
    items/harr_lbp/video_face_distinguish.h
    items/harr_lbp/video_face_distinguish.cpp
    items/image_segmentation_window.h
    items/image_segmentation_window.cpp
    items/image_segmentation/colors_classification.h
    items/image_segmentation/colors_classification.cpp
    items/image_segmentation/crabcut_matting.h
    items/image_segmentation/crabcut_matting.cpp
    items/image_segmentation/gmm_image_division.h
    items/image_segmentation/gmm_image_division.cpp
    items/image_segmentation/id_photo_background_replacement.h
    items/image_segmentation/id_photo_background_replacement.cpp
    items/image_segmentation/vide_greencurtain_background_replacement.h
    items/image_segmentation/vide_greencurtain_background_replacement.cpp
    items/image_segmentation/watershed_division.h
    items/image_segmentation/watershed_division.cpp
     items/image_segmentation/watershed_image_division.h
    items/image_segmentation/watershed_image_division.cpp
    items/video_analysis_and_object_track_window.h
    items/video_analysis_and_object_track_window.cpp
    items/video_analysis_and_object_track/cam_shift_video_object_tracking.h
    items/video_analysis_and_object_track/cam_shift_video_object_tracking.cpp
    items/video_analysis_and_object_track/color_separate_in_range.h
    items/video_analysis_and_object_track/color_separate_in_range.cpp
    items/video_analysis_and_object_track/extend_kcf_multi_objects_tracking.h
    items/video_analysis_and_object_track/extend_kcf_multi_objects_tracking.cpp
    items/video_analysis_and_object_track/extend_kcf_single_object_tracking.h
    items/video_analysis_and_object_track/extend_kcf_single_object_tracking.cpp
    items/video_analysis_and_object_track/hf_object_tracking.h
    items/video_analysis_and_object_track/hf_object_tracking.cpp
    items/video_analysis_and_object_track/klt_object_tracking.h
    items/video_analysis_and_object_track/klt_object_tracking.cpp
    items/video_analysis_and_object_track/mog_video_background_remove.h
    items/video_analysis_and_object_track/mog_video_background_remove.cpp
    items/video_analysis_and_object_track/move_video_object_tracking.h
    items/video_analysis_and_object_track/move_video_object_tracking.cpp
    items/video_analysis_and_object_track/color_based_object_tracking.h
    items/video_analysis_and_object_track/color_based_object_tracking.cpp
    items/video_player_window.h
    items/video_player_window.cpp
    #items/video_player/video_player_opengl_show_image.h
    #items/video_player/video_player_opengl_show_image.cpp
    items/video_player/video_player_roate_flip.h
    items/video_player/video_player_roate_flip.cpp
    items/video_player/video_player_splicing_image.h
    items/video_player/video_player_splicing_image.cpp
    #
    items/BaseOptionWindow.h
    items/BaseOptionWindow.cpp
    items/ImageBasicOptionExampleWindow.h
    items/ImageBasicOptionExampleWindow.cpp
    items/base_option/BasePixelOption.h
    items/base_option/BasePixelOption.cpp
    items/base_option/ShowOriginalImageWindow.h
    items/base_option/ShowOriginalImageWindow.cpp
    items/base_option/BasicPixelOptionWindow.h
    items/base_option/BasicPixelOptionWindow.cpp
    items/base_option/PixelReverseWindow.h
    items/base_option/PixelReverseWindow.cpp
    items/base_option/ImageFuseWindow.h
    items/base_option/ImageFuseWindow.cpp
    items/base_option/IncreaseBrightnessContrastRatioWindow.h
    items/base_option/IncreaseBrightnessContrastRatioWindow.cpp
    items/base_option/DrawShapeWindow.h
    items/base_option/DrawShapeWindow.cpp
    items/base_option/BlurWindow.h
    items/base_option/BlurWindow.cpp
    items/base_option/GaussianBlurWindow.h
    items/base_option/GaussianBlurWindow.cpp
    items/base_option/MediaBlurWindow.h
    items/base_option/MediaBlurWindow.cpp
    items/base_option/BilateralFilterWindow.h
    items/base_option/BilateralFilterWindow.cpp
    items/base_option/ExtractEnglishLettersWindow.h
    items/base_option/ExtractEnglishLettersWindow.cpp
    items/base_option/OpenImageOptionWindow.h
    items/base_option/OpenImageOptionWindow.cpp
    items/base_option/MorphologicalGradientWindow.h
    items/base_option/MorphologicalGradientWindow.cpp
    items/base_option/ExtractLineWindow.h
    items/base_option/ExtractLineWindow.cpp
    items/base_option/PryUpAndDownWindow.h
    items/base_option/PryUpAndDownWindow.cpp
    items/base_option/GaussianDiffWindow.h
    items/base_option/GaussianDiffWindow.cpp
    items/base_option/Filter2DCustomKernelWindow.h
    items/base_option/Filter2DCustomKernelWindow.cpp
    items/base_option/Filter2DMergeXYCustomKernelWindow.h
    items/base_option/Filter2DMergeXYCustomKernelWindow.cpp
    items/base_option/MakeBorderCopyWindow.h
    items/base_option/MakeBorderCopyWindow.cpp
    items/base_option/SobelAndScharrWindow.h
    items/base_option/SobelAndScharrWindow.cpp
    items/base_option/LaplacianWindow.h
    items/base_option/LaplacianWindow.cpp
    items/base_option/CannyWindow.h
    items/base_option/CannyWindow.cpp
    items/base_option/HoughLineWindow.h
    items/base_option/HoughLineWindow.cpp
    items/base_option/HoughCirclesWindow.h
    items/base_option/HoughCirclesWindow.cpp
    items/base_option/RemapWindow.h
    items/base_option/RemapWindow.cpp
    items/base_option/EqualizeHistWindow.h
    items/base_option/EqualizeHistWindow.cpp
    items/base_option/EqualizeHistColorImageWindow.h
    items/base_option/EqualizeHistColorImageWindow.cpp
    items/base_option/DrawCalcHistWindow.h
    items/base_option/DrawCalcHistWindow.cpp
    items/base_option/CalcHistBackProjectWindow.h
    items/base_option/CalcHistBackProjectWindow.cpp
    items/base_option/MatchTemplateWindow.h
    items/base_option/MatchTemplateWindow.cpp
    items/base_option/FindContoursWindow.h
    items/base_option/FindContoursWindow.cpp
    items/base_option/ContoursRectAndCircleWindow.h
    items/base_option/ContoursRectAndCircleWindow.cpp
    items/custom/CustomExampleListWindow.h
    items/custom/CustomExampleListWindow.cpp
    items/custom/GridViewExampleWindow.h
    items/custom/GridViewExampleWindow.cpp
    items/custom/FloatingWindow.h
    items/custom/FloatingWindow.cpp
    items/custom/MenuBarWindow.h
    items/custom/MenuBarWindow.cpp
    items/custom/MenuBarWindow.h
    items/custom/MenuBarWindow.cpp
    items/custom/ToolBarWindow.h
    items/custom/ToolBarWindow.cpp
    items/custom/StatusBarWindow.h
    items/custom/StatusBarWindow.cpp
    items/custom/CenterWidgetWindow.h
    items/custom/CenterWidgetWindow.cpp
    items/custom/DialogWindow.h
    items/custom/DialogWindow.cpp
    items/custom/GridLayoutExampleWindow.h
    items/custom/GridLayoutExampleWindow.cpp
    items/custom/FormLayoutExampleWindow.h
    items/custom/FormLayoutExampleWindow.cpp
    items/custom/VHLayoutExampleWindow.h
    items/custom/VHLayoutExampleWindow.cpp
    items/custom/StackedLayoutExampleWindow.h
    items/custom/StackedLayoutExampleWindow.cpp
    items/custom/TabWidgetExampleWindow.h
    items/custom/TabWidgetExampleWindow.cpp
    items/custom/TreeWidgetExampleWindow.h
    items/custom/TreeWidgetExampleWindow.cpp
    items/custom/EventExampleWindow.h
    items/custom/EventExampleWindow.cpp
    items/base_option_example/CoinCountExampleWindow.h
    items/base_option_example/CoinCountExampleWindow.cpp
    items/NetworkWindow.h
    items/NetworkWindow.cpp
    items/net/LoginWindow.h
    items/net/LoginWindow.cpp
    items/net/utils/HttpUtils.h
    items/net/utils/HttpUtils.cpp
    items/net/utils/CacheUtils.h
    items/net/utils/CacheUtils.cpp
    items/net/utils/HttpClient.h
    items/net/utils/HttpClient.cpp
    items/net/utils/JsonUtils.h
    items/net/utils/JsonUtils.cpp
    items/compress/ImageCompressTool.h
    items/compress/ImageCompressTool.cpp
    items/OpenGLSampleWindow.h
    items/OpenGLSampleWindow.cpp
    items/opengl/GLTriangleWindow.h
    items/opengl/GLTriangleWindow.cpp
    items/opengl/GLSquareWindow.h
    items/opengl/GLSquareWindow.cpp
    items/opengl/GLTextureWindow.h
    items/opengl/GLTextureWindow.cpp
    items/opengl/GLTwoTriangleWindow.h
    items/opengl/GLTwoTriangleWindow.cpp
    items/opengl/GLTwoVAOTriangleWindow.h
    items/opengl/GLTwoVAOTriangleWindow.cpp
    items/opengl/GLTwoShaderTriangleWindow.h
    items/opengl/GLTwoShaderTriangleWindow.cpp
    items/opengl/BaseOpenGLWindow.h
    items/opengl/BaseOpenGLWindow.cpp
    items/opengl/GLColorDataFromVertexWindow.h
    items/opengl/GLColorDataFromVertexWindow.cpp
    items/opengl/GLTextureGirlAndFaceWindow.h
    items/opengl/GLTextureGirlAndFaceWindow.cpp
    items/opengl/GLTextureColorWindow.h
    items/opengl/GLTextureColorWindow.cpp
    items/opengl/GLTextureMixWindow.h
    items/opengl/GLTextureMixWindow.cpp
    items/opengl/GLTextureTranslateRotateScaleWindow.h
    items/opengl/GLTextureTranslateRotateScaleWindow.cpp
    items/opengl/GLTextureMvpTestWindow.h
    items/opengl/GLTextureMvpTestWindow.cpp
    items/opengl/GLTextureMVP3DWindow.h
    items/opengl/GLTextureMVP3DWindow.cpp
    items/opengl/effects/OpenGLSpecialEffectsWindow.h
    items/opengl/effects/OpenGLSpecialEffectsWindow.cpp
    items/opengl/effects/OpenGLEffectsView.h
    items/opengl/effects/OpenGLEffectsView.cpp
    items/opengl/effects/shader/OriginalShader.h
    items/opengl/effects/shader/OriginalShader.cpp
    items/opengl/effects/shader/BaseShader.h
    items/opengl/effects/shader/BaseShader.cpp
    items/opengl/effects/shader/GrayShader.h
    items/opengl/effects/shader/GrayShader.cpp
    items/opengl/effects/shader/EffectsShaderFactory.h
    items/opengl/effects/shader/EffectsShaderFactory.cpp
    items/opengl/effects/shader/ThresholdShader.h
    items/opengl/effects/shader/ThresholdShader.cpp
    items/opengl/effects/shader/PixelInversionShader.h
    items/opengl/effects/shader/PixelInversionShader.cpp
    items/opengl/effects/shader/dialog/ThresholdShaderDialog.h
    items/opengl/effects/shader/dialog/ThresholdShaderDialog.cpp
    items/opengl/effects/shader/GammaShader.h
    items/opengl/effects/shader/GammaShader.cpp
    items/opengl/effects/shader/dialog/GammaShaderDialog.h
    items/opengl/effects/shader/dialog/GammaShaderDialog.cpp
    items/opengl/effects/shader/NostalgiaShader.h
    items/opengl/effects/shader/NostalgiaShader.cpp
    items/opengl/effects/shader/dialog/NostalgiaShaderDialog.h
    items/opengl/effects/shader/dialog/NostalgiaShaderDialog.cpp
    items/opengl/effects/shader/BrightnessExposureContrastSaturationShader.h
    items/opengl/effects/shader/BrightnessExposureContrastSaturationShader.cpp
    items/opengl/effects/shader/dialog/BrightnessExposureContrastSaturationShaderDialog.h
    items/opengl/effects/shader/dialog/BrightnessExposureContrastSaturationShaderDialog.cpp
    items/opengl/effects/shader/CtrlLShader.h
    items/opengl/effects/shader/CtrlLShader.cpp
    items/opengl/effects/shader/dialog/CtrlLShaderDialog.h
    items/opengl/effects/shader/dialog/CtrlLShaderDialog.cpp
    items/FFMpegWindow.h
    items/FFMpegWindow.cpp
    items/SdlWindow.h
    items/SdlWindow.cpp
    items/MultimediaProjectCollectionWindow.h
    items/MultimediaProjectCollectionWindow.cpp
    items/OpenCVWindow.h
    items/OpenCVWindow.cpp
    items/ffmpeg/FFMpegDemuxerWindow.h
    items/ffmpeg/FFMpegDemuxerWindow.cpp
    items/ffmpeg/XVideoWindow.h
    items/ffmpeg/XVideoWindow.cpp
    items/ffmpeg/xplayer/XVideoPlayerWindow.h
    items/ffmpeg/xplayer/XVideoPlayerWindow.cpp
    items/ffmpeg/player/JCQueueDef.h
    items/ffmpeg/xplayer/IVideoCall.h
    items/ffmpeg/xplayer/XAudioPlay.h
    items/ffmpeg/xplayer/XAudioPlay.cpp
    items/ffmpeg/xplayer/XAudioThread.h
    items/ffmpeg/xplayer/XAudioThread.cpp
    items/ffmpeg/xplayer/XDecode.h
    items/ffmpeg/xplayer/XDecode.cpp
    items/ffmpeg/xplayer/XDecodeThread.h
    items/ffmpeg/xplayer/XDecodeThread.cpp
    items/ffmpeg/xplayer/XDemux.h
    items/ffmpeg/xplayer/XDemux.cpp
    items/ffmpeg/xplayer/XDemuxThread.h
    items/ffmpeg/xplayer/XDemuxThread.cpp
    items/ffmpeg/xplayer/XPlay2.h
    items/ffmpeg/xplayer/XPlay2.cpp
    items/ffmpeg/xplayer/XResample.h
    items/ffmpeg/xplayer/XResample.cpp
    items/ffmpeg/xplayer/XSlider.h
    items/ffmpeg/xplayer/XSlider.cpp
    items/ffmpeg/xplayer/XVideoThread.h
    items/ffmpeg/xplayer/XVideoThread.cpp
    items/ffmpeg/xplayer/XVideoWidget.h
    items/ffmpeg/xplayer/XVideoWidget.cpp
    items/ffmpeg/FFMpegRecordInterfaceWindow.h
    items/ffmpeg/FFMpegRecordInterfaceWindow.cpp
    items/ffmpeg/rtmp_pusher/RtmpPusherWindow.h
    items/ffmpeg/rtmp_pusher/RtmpPusherWindow.cpp
    items/ffmpeg/rtmp_pusher/OpenCVRtspToRtmpWindow.h
    items/ffmpeg/rtmp_pusher/OpenCVRtspToRtmpWindow.cpp
    items/ffmpeg/rtmp_pusher_audio/UseQtRecordAudioWindow.h
    items/ffmpeg/rtmp_pusher_audio/UseQtRecordAudioWindow.cpp
    items/ffmpeg/rtmp_pusher_audio/RtmpPushAudioUseFFmpegWindow.h
    items/ffmpeg/rtmp_pusher_audio/RtmpPushAudioUseFFmpegWindow.cpp
    items/ffmpeg/record_screen/rgb_to_mp4_window.h
    items/ffmpeg/record_screen/rgb_to_mp4_window.cpp
    items/ffmpeg/record_screen/rgb2mp4thread.h
    items/ffmpeg/record_screen/rgb2mp4thread.cpp
    items/ffmpeg/record_screen/MediaFormatFactoryThread.h
    items/ffmpeg/record_screen/MediaFormatFactoryThread.cpp
    items/ffmpeg/record_screen/MediaFormatFactoryWindow.h
    items/ffmpeg/record_screen/MediaFormatFactoryWindow.cpp
    items/ffmpeg/record_screen/Pcm2AacThread.h
    items/ffmpeg/record_screen/Pcm2AacThread.cpp
    items/ffmpeg/record_screen/Pcm2AacWindow.h
    items/ffmpeg/record_screen/Pcm2AacWindow.cpp
    items/ffmpeg/record_screen/RGBPcm2Mp4Window.h
    items/ffmpeg/record_screen/RGBPcm2Mp4Window.cpp
    items/ffmpeg/record_screen/RGBPcm2Mp4Controller.h
    items/ffmpeg/record_screen/RGBPcm2Mp4Controller.cpp
    items/ffmpeg/record_screen/RGBPcm2Mp4Writer.h
    items/ffmpeg/record_screen/RGBPcm2Mp4Writer.cpp
    items/ffmpeg/record_screen/TonyCaptureScreen.h
    items/ffmpeg/record_screen/TonyCaptureScreen.cpp
    items/ffmpeg/record_screen/TonyCaptureScreenTestWindow.h
    items/ffmpeg/record_screen/TonyCaptureScreenTestWindow.cpp
    items/ffmpeg/record_screen/AudioRecordThread.h
    items/ffmpeg/record_screen/AudioRecordThread.cpp
    items/ffmpeg/record_screen/AudioRecordWindow.h
    items/ffmpeg/record_screen/AudioRecordWindow.cpp

    items/ffmpeg/record_screen/video_recoder/XTAudioThread.h
    items/ffmpeg/record_screen/video_recoder/XTAudioThread.cpp
    items/ffmpeg/record_screen/video_recoder/XCaptureThread.h
    items/ffmpeg/record_screen/video_recoder/XCaptureThread.cpp
    items/ffmpeg/record_screen/video_recoder/XVideoWriter.h
    items/ffmpeg/record_screen/video_recoder/XVideoWriter.cpp
    items/ffmpeg/record_screen/video_recoder/XScreenRecord.h
    items/ffmpeg/record_screen/video_recoder/XScreenRecord.cpp
    items/ffmpeg/record_screen/video_recoder/xscreen.h
    items/ffmpeg/record_screen/video_recoder/xscreen.cpp
    items/ffmpeg/utils/FFmpegUtils.h

    items/ffmpeg/sample/PixelFormatConversionToolWindow.h
    items/ffmpeg/sample/PixelFormatConversionToolWindow.cpp
    items/ffmpeg/sample/PixelFormatConversionTool.h
    items/ffmpeg/sample/PixelFormatConversionTool.cpp
    items/ffmpeg/sample/GenerateH26XWindow.h
    items/ffmpeg/sample/GenerateH26XWindow.cpp
    items/ffmpeg/sample/H264OrH265FilePlayWindow.h
    items/ffmpeg/sample/H264OrH265FilePlayWindow.cpp
    items/ffmpeg/sample/H264OrH265FilePlayByEncapsulationWindow.h
    items/ffmpeg/sample/H264OrH265FilePlayByEncapsulationWindow.cpp
    items/ffmpeg/sample/DeMuxerAndPlayWindow.h
    items/ffmpeg/sample/DeMuxerAndPlayWindow.cpp
    items/ffmpeg/sample/RePackingMp4Window.h
    items/ffmpeg/sample/RePackingMp4Window.cpp
    items/ffmpeg/sample/RePackingMp4ByFormatCodeWindow.h
    items/ffmpeg/sample/RePackingMp4ByFormatCodeWindow.cpp
    items/ffmpeg/sample/TranscodingWindow.h
    items/ffmpeg/sample/TranscodingWindow.cpp
    items/ffmpeg/sample/FFMpegSamplePlayerWindow.h
    items/ffmpeg/sample/FFMpegSamplePlayerWindow.cpp
    items/ffmpeg/sample/TestWindow.h
    items/ffmpeg/sample/TestWindow.cpp
    items/ffmpeg/sample/YVideoWidget.h
    items/ffmpeg/sample/YVideoWidget.cpp
    items/ffmpeg/sample/PlayAndRecordRTSPStreamWindow.h
    items/ffmpeg/sample/PlayAndRecordRTSPStreamWindow.cpp

    items/ffmpeg/yviewer/MultiChannelMonitoringWindow.h
    items/ffmpeg/yviewer/MultiChannelMonitoringWindow.cpp
    items/ffmpeg/yviewer/YCalendar.h
    items/ffmpeg/yviewer/YCalendar.cpp
    items/ffmpeg/yviewer/YCameraConfig.h
    items/ffmpeg/yviewer/YCameraConfig.cpp
    items/ffmpeg/yviewer/YCameraRecord.h
    items/ffmpeg/yviewer/YCameraRecord.cpp
    items/ffmpeg/yviewer/YCameraWidget.h
    items/ffmpeg/yviewer/YCameraWidget.cpp
    items/ffmpeg/yviewer/YPlayVideoPreviewWindow.h
    items/ffmpeg/yviewer/YPlayVideoPreviewWindow.cpp
     items/ffmpeg/yviewer/player_controller/PlayerController.h
    items/ffmpeg/yviewer/player_controller/PlayerController.cpp


    items/ffmpeg/codec/YCodec.h
    items/ffmpeg/codec/YCodec.cpp
    items/ffmpeg/codec/YEncoder.h
    items/ffmpeg/codec/YEncoder.cpp
    items/ffmpeg/codec/YDecoder.h
    items/ffmpeg/codec/YDecoder.cpp
    items/ffmpeg/codec/VideoReScaler.h
    items/ffmpeg/codec/VideoReScaler.cpp

    items/ffmpeg/task/YTools.h
    items/ffmpeg/task/YTools.cpp
    items/ffmpeg/task/YDemuxerTask.h
    items/ffmpeg/task/YDemuxerTask.cpp
    items/ffmpeg/task/YMuxerTask.h
    items/ffmpeg/task/YMuxerTask.cpp
    items/ffmpeg/task/YDecoderTask.h
    items/ffmpeg/task/YDecoderTask.cpp

    items/ffmpeg/format/YBaseMuxer.h
    items/ffmpeg/format/YBaseMuxer.cpp
    items/ffmpeg/format/YMuxer.h
    items/ffmpeg/format/YMuxer.cpp
    items/ffmpeg/format/YDemuxer.h
    items/ffmpeg/format/YDemuxer.cpp

    items/sdl/SDLRenderRGBWindow.h
    items/sdl/SDLRenderRGBWindow.cpp
    items/sdl/SDLRenderYUVWindow.h
    items/sdl/SDLRenderYUVWindow.cpp
    items/sdl/SDLRenderAVFrameWindow.h
    items/sdl/SDLRenderAVFrameWindow.cpp
    items/sdl/MultipleVideosPlayController.h
    items/sdl/MultipleVideosPlayController.cpp
    items/sdl/utils/SDLRenderUtil.h

    items/sdl/render/IVideoRenderView.h
    items/sdl/render/IVideoRenderView.cpp
    items/sdl/render/SDLVideoRenderView.h
    items/sdl/render/SDLVideoRenderView.cpp
    items/sdl/render/VideoRenderViewController.h
    items/sdl/render/VideoRenderViewController.cpp
    items/sdl/render/VideoRenderViewWindow.h
    items/sdl/render/VideoRenderViewWindow.cpp

    items/sdl/audioplayer/YAudioPlayer.h
    items/sdl/audioplayer/YAudioPlayer.cpp



    

    common/utils/StyleHelper.h
    common/utils/StyleConfig.h
    common/utils/CustomSleepTool.h
    common/CustomWidgetWindow.h
    common/CustomWidgetWindow.cpp
    common/utils/ImageUtils.h
    common/utils/ImageUtils.cpp
    common/utils/DialogUtils.h
    common/utils/BinaryFileReader.h
    common/utils/BinaryFileWriter.h
    common/button/Button.h
    common/button/Button.cpp
    common/edittext/EditText.h
    common/edittext/EditText.cpp
    common/checkbox/CheckBox.h
    common/checkbox/CheckBox.cpp
    common/radiobutton/RadioButton.h
    common/radiobutton/RadioButton.cpp
    common/scroll/ScrollView.h
    common/scroll/ScrollView.cpp
    common/seekbar/Seekbar.h
    common/seekbar/Seekbar.cpp
    common/combobox/ComboBox.h
    common/combobox/ComboBox.cpp
    common/base/Handler.h
    common/base/BaseSceneView.h
    common/base/BaseSceneView.cpp
    common/base/HandlerThread.h
    common/base/HandlerThread.cpp
    common/minus_plus/MinusPlusWidget.h
    common/minus_plus/MinusPlusWidget.cpp
    common/seekbar/SeekBarTipsWidget.h
    common/seekbar/SeekBarTipsWidget.cpp
    common/choice_image/ChoiceImageWidget.h
    common/choice_image/ChoiceImageWidget.cpp
    common/image_tip/ImageTip.h
    common/image_tip/ImageTip.cpp
    common/layout/VariableGridView.h
    common/layout/VariableGridView.cpp
    common/bean/PushStreamBean.h
    common/thread/WorkerThread.h

    
)

qt_add_executable(QtForOpenCV4Tool  ${PROJECT_SOURCES} ${LIBYUV_C_SOURCE} ${LIBGLM_C_SOURCE}  ../Resource.qrc)

set_target_properties(QtForOpenCV4Tool
    PROPERTIES
        WIN32_EXECUTABLE TRUE
)

target_link_libraries(QtForOpenCV4Tool
    PUBLIC
        Qt5::Core
        Qt5::Gui
        Qt5::Widgets
        Qt5::OpenGL
        Qt5::MultimediaWidgets
        Qt5::Network
        opencv_world452d
        SDL2 
        SDL2_image
        #引入ffmpeg
        avformat
        avutil
        avcodec
        avdevice
        avfilter
        swscale
        swresample
        #引入curl
        libcurl
        #引入glfw
        glfw3
        d3d9 
)
#Qt5::OpenGLExtensions
